package Report;

import java.util.ArrayList;

import org.apache.commons.lang.StringEscapeUtils;

import Entita.Interpretazione;
import Entita.Paziente;
import GUI.Inserimento;
import GUI.ProtocolloTavola;

public class protocolloToHTML {
	protected ArrayList<ProtocolloTavola> tavole;
	protected Paziente paziente;
	protected Inserimento inserimento;
	
	public protocolloToHTML(Inserimento data){
		 tavole=data.getListaTavole();
		 paziente=data.getPaziente();
		 inserimento=data;
	}
	
	public String getHTML(){
		String altriTest;
		if (paziente.getAltriTest().isEmpty()||paziente.getAltriTest().length()==0){
			altriTest="";
		}else{
			altriTest=", "+StringEscapeUtils.escapeHtml(paziente.getAltriTest());
		}
		String html="<table class='titolo'><tbody><tr><td><div style='width: 160mm; margin: auto;' >Protocollo Rorschach"+altriTest+" di "+StringEscapeUtils.escapeHtml(paziente.getNome()+" "+paziente.getCognome())+"</div></td></tr></tbody></table>";
		for (ProtocolloTavola tavola:tavole){
			if (tavola.isRifiuto()) {
				html+=	"<div class='block'>\n"+
						"<table class='tavolaTitle' cellspacing='0'>\n"+
						"<tbody ><tr>\n"+
						"<td class='tavolaTitleTavola'><b>Tavola </b>\n"+StringEscapeUtils.escapeHtml(tavola.getTavola().getNome())+"</td>\n"+
						"<td class='tavolaTitleRifiuto'><b>Rifiuto</b></td>\n"+
						"<td class='tavolaTitleChoc'><b>Choc: </b>\n"+StringEscapeUtils.escapeHtml(tavola.getChoc())+"</td>\n"+
						"<td class='tavolaTitleMP'><b>M.P.: </b>\n"+StringEscapeUtils.escapeHtml(tavola.getManifestazioni())+"</td>\n"+
						"</tr></tbody>\n"+
						"</table>\n"+
					    "<table  class='rispostaTable' cellspacing=0>\n"+
					    "<tbody><tr><td class='rigaVuota'></td></tr>\n"+
					    "<tr>\n"+
			            "<td class='rispostaNumero'></td>\n"+
			            "<td class='rispostaRaccolta'><div>"+StringEscapeUtils.escapeHtml(tavola.getRaccolta())+"</div></td>\n"+
			            "<td class='rispostaInchiesta'>\n"+StringEscapeUtils.escapeHtml(tavola.getInchiesta())+"</td>\n"+
			            "<td class='rispostaRifiuto'>&nbsp;</td>\n"+
				        "</tr>\n"+
				        "<tr><td class='rigaVuota'></td></tr>\n"+
					    "</tbody></table></div>";
				
			} else {
				String indiceRealta="&nbsp;";
				if (tavola.getTavola().isIndiceRealta()) {
					indiceRealta="<b>I. di realt&agrave;: </b>"+StringEscapeUtils.escapeHtml(tavola.getIndiceRealta());
				}
				html+=	"<div class='block'>\n"+
						"<table class='tavolaTitle' cellspacing='0'>\n"+
						"<tbody><tr>\n"+
						"<td class='tavolaTitleTavola'><b>Tavola </b>\n"+StringEscapeUtils.escapeHtml(tavola.getTavola().getNome())+"</td>\n"+
						"<td class='tavolaTitleLatenza'><b>T. di Latenza: </b>\n"+StringEscapeUtils.escapeHtml(""+(int)tavola.getLatenza())+"\"</td>\n"+
						"<td class='tavolaTitleTempoTotale'><b>T. Totale: </b>\n"+StringEscapeUtils.escapeHtml(""+tavola.getTempoTotale())+"\"</td>\n"+
						"<td class='tavolaTitleChoc'><b>Choc: </b>\n"+StringEscapeUtils.escapeHtml(tavola.getChoc())+"</td>\n"+
						"<td class='tavolaTitleMP'><b>M.P.: </b>\n"+StringEscapeUtils.escapeHtml(tavola.getManifestazioni())+"</td>\n"+
						"<td class='tavolaTitleSucc'><b>Succ.: </b>\n"+StringEscapeUtils.escapeHtml(tavola.getSuccessioniString())+"</td>\n"+
						"<td class='tavolaTitleIndiceRealta'>\n"+ indiceRealta +"</td>" +
						"</tr></tbody>\n"+
						"</table>\n"+
					    "<table  class='rispostaTable' cellspacing=0>\n"+
					    "<tbody><tr><td class='rigaVuota'></td></tr>";

				for (Interpretazione interpretazione: tavola.getInterpretazioni()){
					String determinanti="";
//					if (!interpretazione.getTipoDeterminantePrimaria().equals("")){
//						if (determinanti.length()==0){
//							determinanti+=StringEscapeUtils.escapeHtml(interpretazione.getTipoDeterminantePrimaria());
//							determinanti=determinanti.replaceAll("&#9893;","<span class='Symbol'>&#9893;</span>");
//						}else{
//							determinanti+="&nbsp;\n"+StringEscapeUtils.escapeHtml(interpretazione.getTipoDeterminantePrimaria());
//							determinanti=determinanti.replaceAll("&#9893;","<span class='Symbol'>&#9893;</span>");
//						}
//					}
					if (!interpretazione.getmDeterminanteSecondaria().equals("")){
						if (determinanti.length()==0){
							determinanti+="<hr>\n"+StringEscapeUtils.escapeHtml(interpretazione.getmDeterminanteSecondaria());
						}else{
							determinanti+="&nbsp;\n"+StringEscapeUtils.escapeHtml(interpretazione.getmDeterminanteSecondaria());						
						}
					}
					if (!interpretazione.getTipoDeterminanteSecondaria().equals("")){
						determinanti+=StringEscapeUtils.escapeHtml(interpretazione.getTipoDeterminanteSecondaria());
					}
					if (!interpretazione.getCDeterminanteSecondaria().equals("")){
						if (determinanti.length()==0){
							determinanti+="<hr>\n"+StringEscapeUtils.escapeHtml(interpretazione.getCDeterminanteSecondaria());
						}else{
							determinanti+="&nbsp;\n"+StringEscapeUtils.escapeHtml(interpretazione.getCDeterminanteSecondaria());						
						}
					}
					if (!interpretazione.getSemicDeterminanteSecondaria().equals("")){
						if (determinanti.length()==0){
							determinanti+="<hr>\n"+StringEscapeUtils.escapeHtml(interpretazione.getSemicDeterminanteSecondaria());
						}else{
							determinanti+="&nbsp;\n"+StringEscapeUtils.escapeHtml(interpretazione.getSemicDeterminanteSecondaria());						
						}
					}
					if (!interpretazione.getcDeterminanteSecondaria().equals("")){
						if (determinanti.length()==0){
							determinanti+="<hr>\n"+StringEscapeUtils.escapeHtml(interpretazione.getcDeterminanteSecondaria());
						}else{
							determinanti+="&nbsp;\n"+StringEscapeUtils.escapeHtml(interpretazione.getcDeterminanteSecondaria());						
						}
					}
					
					determinanti=StringEscapeUtils.escapeHtml(interpretazione.getDeterminantePrimaria())+StringEscapeUtils.escapeHtml(interpretazione.getTipoDeterminantePrimaria())+determinanti;
					
					String comprensione=interpretazione.getmComprensione();
					if(comprensione.length()>7){
						comprensione=comprensione.substring(0,7)+".";
					}
					
					String contenuti="";
					
					if (!interpretazione.getContenutiSecondari1().equals("")){
						contenuti+="<hr>\n"+StringEscapeUtils.escapeHtml(interpretazione.getContenutiSecondari1());
						if (!interpretazione.getContenutiSecondari2().equals("")){
							contenuti+=" \n"+StringEscapeUtils.escapeHtml(interpretazione.getContenutiSecondari2());
							if (!interpretazione.getContenutiSecondari3().equals("")){
								contenuti+=" \n"+StringEscapeUtils.escapeHtml(interpretazione.getContenutiSecondari3());
								if (!interpretazione.getContenutiSecondari4().equals("")){
									contenuti+=" \n"+StringEscapeUtils.escapeHtml(interpretazione.getContenutiSecondari4());
									if (!interpretazione.getContenutiSecondari5().equals("")){
										contenuti+=" \n"+StringEscapeUtils.escapeHtml(interpretazione.getContenutiSecondari5());
									}
								}
							}
						}
					}
					
					String manifestazioni="";
					
					if (!interpretazione.getManifestazioniParticolari1().equals("")){
						manifestazioni+=StringEscapeUtils.escapeHtml(interpretazione.getManifestazioniParticolari1());
						if (!interpretazione.getManifestazioniParticolari2().equals("")){
							manifestazioni+=" \n"+StringEscapeUtils.escapeHtml(interpretazione.getManifestazioniParticolari2());
							if (!interpretazione.getManifestazioniParticolari3().equals("")){
								manifestazioni+=" \n"+StringEscapeUtils.escapeHtml(interpretazione.getManifestazioniParticolari3());
								if (!interpretazione.getManifestazioniParticolari4().equals("")){
									manifestazioni+=" \n"+StringEscapeUtils.escapeHtml(interpretazione.getManifestazioniParticolari4());
									if (!interpretazione.getManifestazioniParticolari5().equals("")){
										manifestazioni+=" \n"+StringEscapeUtils.escapeHtml(interpretazione.getManifestazioniParticolari5());
									}
								}
							}
						}
					}
					
					if (!interpretazione.getRispostaComplessuale1().equals("")){
						if (!manifestazioni.equals("")){
							manifestazioni+= " ";
						}
						manifestazioni+=StringEscapeUtils.escapeHtml(interpretazione.getRispostaComplessuale1());
						if (!interpretazione.getRispostaComplessuale2().equals("")){
							manifestazioni+=" \n"+StringEscapeUtils.escapeHtml(interpretazione.getRispostaComplessuale2());
							if (!interpretazione.getRispostaComplessuale3().equals("")){
								manifestazioni+=" \n"+StringEscapeUtils.escapeHtml(interpretazione.getRispostaComplessuale3());
								if (!interpretazione.getRispostaComplessuale4().equals("")){
									manifestazioni+=" \n"+StringEscapeUtils.escapeHtml(interpretazione.getRispostaComplessuale4());
									if (!interpretazione.getRispostaComplessuale5().equals("")){
										manifestazioni+=" \n"+StringEscapeUtils.escapeHtml(interpretazione.getRispostaComplessuale5());
									}
								}
							}
						}
					}
					
					
					
//					if(interpretazione.getContenutiPrimaritesto().length()>0){
//						contenuti=interpretazione.getContenutiPrimaritesto()+contenuti;
//					}else{
						contenuti=StringEscapeUtils.escapeHtml(interpretazione.getContenutiPrimari())+contenuti;
//					}
					html+="<tr class='block'>\n"+
				            "<td class='rispostaNumero block'>\n"+StringEscapeUtils.escapeHtml(""+interpretazione.getOrdine())+")</td>\n"+
				            "<td class='block'><div class='rispostaRaccolta'>"+StringEscapeUtils.escapeHtml(interpretazione.getRaccolta())+"</div></td>\n"+
				            "<td class='block'><div class='rispostaInchiesta'>"+StringEscapeUtils.escapeHtml(interpretazione.getInchiesta())+"</div></td>\n"+
				            "<td class='rispostaModiComprensione block'>\n"+comprensione+"</td>\n"+
				            "<td class='rispostaDeterminanti block'>\n"+determinanti+"</td>\n"+
				            "<td class='rispostaContenuti block'>\n"+contenuti+"</td>\n"+
				            "<td class='rispostaFrequenze block'>\n"+StringEscapeUtils.escapeHtml(""+interpretazione.getFrequenze())+"</td>\n"+
				            "<td class='rispostaManifestazioniRisposte block'>\n"+manifestazioni+"</td>\n"+
				        "</tr>\n"+
				        "<tr><td class='rigaVuota'></td></tr>";
				}
				html+="</tbody></table></div>";

			}
			
		}
		html+= "<br>"
				+ "<div class=block>"
				+ "	<div class='RiquadroTitolo'>Prove Supplementari</div>"
				+ "	<div class='Riquadro'>"
				+ "			<div class='RiquadroPinacoteca'>"
				+ "				<div class='PinacotecaLabel'>I</div>"+inserimento.getPinacoteca1()+"<br>"
				+ "				<div class='PinacotecaLabel'>II</div>"+inserimento.getPinacoteca2()+"<br>"
				+ "				<div class='PinacotecaLabel'>III</div>"+inserimento.getPinacoteca3()+"<br>"
				+ "				<div class='PinacotecaLabel'>IV</div>"+inserimento.getPinacoteca4()+"<br>"
				+ "				<div class='PinacotecaLabel'>V</div>"+inserimento.getPinacoteca5()+"<br>"
				+ "				<div class='PinacotecaLabel'>VI</div>"+inserimento.getPinacoteca6()+"<br>"
				+ "				<div class='PinacotecaLabel'>VII</div>"+inserimento.getPinacoteca7()+"<br>"
				+ "				<div class='PinacotecaLabel'>VIII</div>"+inserimento.getPinacoteca8()+"<br>"
				+ "				<div class='PinacotecaLabel'>IX</div>"+inserimento.getPinacoteca9()+"<br>"
				+ "				<div class='PinacotecaLabel'>X</div>"+inserimento.getPinacoteca10()+"<br>"
				+ "			</div>"
				+ "			<div class='RiquadroPinacoteca2' style='margin-left:2mm;'>"
				+ "				<div class='DescrizioneLabel'>Tavole Preferite</div>"+inserimento.getTavolaPreferita()+"<br>"
				+ "				<div class='DescrizioneLabel'>Tavola pi&ugrave; simpatica e perch&eacute;</div>"+inserimento.getTavolaSimpatica()+"<br>"
				+ "				<div class='Pinacoteca2Righe'>"+inserimento.getTavolaSimpaticaPerche()+"</div><br>"
				+ "				<div class='DescrizioneLabel'>Tavola pi&ugrave; antipatica e perch&eacute;</div>"+inserimento.getTavolaAntipatica()+"<br>"
				+ "				<div class='Pinacoteca2Righe'>"+inserimento.getTavolaAntipaticaPerche()+"</div><br>"
				+ "				<div class='DescrizioneLabel'>Seriazione</div>"+inserimento.getSeriazionePositiva()+"<br>"
				+ "				<div class='DescrizioneLabel'>Colore &plus; gradito</div>"+inserimento.getColorePiuGradito()+"<br>"
				+ "				<div class='DescrizioneLabel'>Colore &minus; gradito</div>"+inserimento.getColoreMenoGradito()+"<br>"
				+ "			</div>"
				+ "	</div>"
				+ "</div>";
		return html;
	}
	

}
